import type { BuildOptions } from 'vite'
import { resolve } from 'path'

export const build: BuildOptions = {
	// 禁用 gzip 压缩大小报告
	reportCompressedSize: false,
	// 构建后是否生成 source map 文件。如果为 true，将会创建一个独立的 source map 文件
	// 如果为 'inline'，source map 将作为一个 data URI 附加在输出文件中。'hidden' 的
	// 工作原理与 'true' 相似，只是 bundle 文件中相应的注释将不被保留。
	sourcemap: false,
	rollupOptions: {
		input: {
			index: resolve(__dirname, '../index.html')
		},
		output: {
			chunkFileNames: 'static/js/[name]-[hash].js',
			entryFileNames: 'static/js/[name]-[hash].js',
			assetFileNames: (assetInfo) => {
				if (assetInfo.type === 'asset' && /\.(?:jpe?g|png|gif|svg)$/i.test(assetInfo.name!)) {
					return 'static/img/[name].[hash].[ext]'
				}

				if (assetInfo.type === 'asset' && /\.(?:ttf|woff|woff2|eot)$/i.test(assetInfo.name!)) {
					return 'static/fonts/[name].[hash].[ext]'
				}

				return 'static/[ext]/name1-[hash].[ext]'
			}
		}
	}
}
